package ve.gob.cne.action.imagen;

import java.io.File;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.ServletRequestAware;

import ve.gob.cne.action.common.SaceCommonAction;
import ve.gob.cne.to.ExtintorTo;
import ve.gob.cne.to.HistoricoTo;
import ve.gob.cne.util.ApplicationProperties;
public class ImagenAction extends SaceCommonAction implements ServletRequestAware {

	/**
	 * 
	 */
	private static final long serialVersionUID = 916027542337094009L;
	private final static Logger logger = Logger.getLogger(ImagenAction.class);
	
	private File imagen;
	private String contentType;
	private String nombreImagen;
	private HttpServletRequest servletRequest;
	private ExtintorTo extintor;
	
	

	public String init(){
		return SUCCESS;
	}
	
	public String exito(){
		return SUCCESS;
	}
	
	public String execute(){
		
		
		try {

			HistoricoTo historico = (HistoricoTo) this.getSession().get("historico");
			//String filePath = File.separator + "home"+ File.separator + "dse" + File.separator +  "Desarrollo" + File.separator + "appServers" + File.separator + "jboss-5.1.0.GA" + File.separator + "server" + File.separator + "sace" + File.separator + "deploy" + File.separator + "ROOT.war" + File.separator + "imagenes"+ File.separator;
			String filePath = ApplicationProperties.getProperty("dir.imagen.mapas");
            File fileToCreate = new File(filePath, this.nombreImagen == null ? "imagen.jpg" : this.nombreImagen + ".png");
            this.actualizarExtintor(nombreImagen + ".png", nombreImagen);
 
            FileUtils.copyFile(this.imagen, fileToCreate);
            historico.setExtintor(extintor);
    		historico.setFechaModificacion(new Date());
    		this.getServicioHistorico().saveHistory(historico);
        } catch (Exception e) {
            logger.error(e); 
            return INPUT;
        }
		return SUCCESS;
		
	}
	
	public void actualizarExtintor(String nombre, String codigo){
		
		extintor = (ExtintorTo) this.getSession().get("extintor");
		extintor.setImagen(nombre);
		this.getServicioExtintor().registrarExtintor(extintor);
	}
	
	
	/**
	 * @return the imagen
	 */
	public File getImagen() {
		return imagen;
	}
	
	/**
	 * @param imagen
	 *            the imagen to set
	 */
	public void setImagen(File imagen) {
		this.imagen = imagen;
	}
	
	/**
	 * @return the contentType
	 */
	public String getContentType() {
		return contentType;
	}
	
	/**
	 * @param contentType
	 *            the contentType to set
	 */
	public void setContentType(String contentType) {
		this.contentType = contentType;
	}
	
	/**
	 * @return the nombreImagen
	 */
	public String getNombreImagen() {
		return nombreImagen;
	}
	
	/**
	 * @param nombreImagen
	 *            the nombreImagen to set
	 */
	public void setNombreImagen(String nombreImagen) {
		this.nombreImagen = nombreImagen;
	}

	/**
	 * @param servletRequest the servletRequest to set
	 */
	public void setServletRequest(HttpServletRequest servletRequest) {
		this.servletRequest = servletRequest;
	}

	public ExtintorTo getExtintor() {
		return extintor;
	}

	public void setExtintor(ExtintorTo extintor) {
		this.extintor = extintor;
	}
}
